package d0427.wordgame;

public class Game {
	// 游戏总关数
	private Level[] levels = {
		new Level(1,"Hello world",15,10),
		new Level(2,"你好中国!",30,20),
		new Level(3,"Java是面向对象编程语言",50,30),
	};
	
	private Player player = new Player(1);
	
	public void start() {
		// 显示当前关的字符串
		// 循环输入字母
		// 判断是否正确
		// 循环
	}
	
	/**
	 * 返回当前关数字符串
	 */
	public String getWords() {
		for(Level level : levels) {
			// 对比玩家的关数
			if(player.getLevelNo() == level.getLevelNo()) {
				// 返回该关数的文字
				return level.getWords();
			}
		}
		return null;
	}
	
	// 定义输入指针
	private int index = 0;
	public int getIndex () {
		return index;
	}
	
	// 判断用户输入的字符是否正确, 如果正确, 指针加一
	public boolean input(char c) {
		String words = getWords();
		char c1 = words.charAt(index); // 获取指针指向的字符
		if(c == c1) {
			// 输入正确
			index ++;
			return true;
		} else {
			// 输入错误
			return false;
		}
	}

	// 判断该关是否结束
	public boolean isOver() {
		// 获取当前关字符
		String words = getWords();
		// 判断输入是否完成
		boolean ret = words.length() == index;
		if(ret) {
			// 如果完成开启下一关
			player.setLevelNo(player.getLevelNo()+1);
			// 输入字符串下标归零
			index = 0;
		}
		return ret;
	}

	public Player getPlayer() {
		return player;
	}
	
}
